using System;
using System.Collections.Generic;
using System.Linq;
using M1;
using UnityEngine;

[CreateAssetMenu(fileName = "场景逻辑配置",menuName = "创建数据/场景逻辑配置")]
public class 场景逻辑数据 : BaseModel<场景逻辑数据,场景逻辑Data>
{
    public void 执行切换场景(string s)
    {
        var datas = Datas.Where(w => w.Scene == s);
        var 进行中的任务 = M二合小镇.Get完成的任务();
        List<场景逻辑Data> 需要执行 = new List<场景逻辑Data>();
        foreach (var VARIABLE in datas)
        {
            if (VARIABLE.Task1 == -1)
            {
                需要执行.Add(VARIABLE);
            }else if (进行中的任务.Any(a => a.Id == VARIABLE.Task1))
            {
                if (VARIABLE.Task2 == -1)
                {
                    //完成任务1后永久
                    需要执行.Add(VARIABLE);
                }
                else if(!进行中的任务.Any(a => a.Id == VARIABLE.Task2))
                {
                    需要执行.Add(VARIABLE);
                }
            }
        }

        foreach (var VARIABLE in 需要执行)
        {
            直接执行(VARIABLE);
        }
    }

    private void 直接执行(场景逻辑Data variable)
    {
        int 逻辑 = variable.Mid;
        逻辑数据.Instance.执行逻辑(逻辑,false);
    }
}

[Serializable]
public class 场景逻辑Data
{
    public int Id;
    public string Scene;
    public int Task1;
    public int Task2;
    public int Mid;
}
